{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import math, codecs\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.patches as mpatches\n",
    "import matplotlib.ticker as plticker\n",
    "from scipy import stats\n",
    "\n",
    "#used for centering minor tick labels between major ticks\n",
    "import matplotlib.ticker as ticker\n",
    "from math import log\n",
    "# 0 = fact-check\n",
    "# 1 = like\n",
    "# 2 = share"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Loading data from CSV files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   usernewsid  userclassification  answertime  newsid  userid  hintused  \\\n",
      "0        1711                   2           0    3487     302         0   \n",
      "1        1712                   1           0    3412     303         0   \n",
      "2        1713                   2           0    3436     304         0   \n",
      "3        1714                   1           0    3422     305         0   \n",
      "4        1715                   2           0    3415      21         0   \n",
      "\n",
      "   timessharedpresented  other  credible  \n",
      "0                     0      0         0  \n",
      "1                     0      0         1  \n",
      "2                     0      0         1  \n",
      "3                    70      0         1  \n",
      "4                     0      0         1  \n"
     ]
    }
   ],
   "source": [
    "# reading and filtering data\n",
    "\n",
    "usernews = pd.read_csv(\"./usernews.csv\", sep=\",\", names=[\"usernewsid\",\"userclassification\",\"answertime\",\"newsid\",\"userid\",\"hintused\",\"timessharedpresented\",\"other\"],  header=0, dtype={'timessharedpresented': np.int64}, na_values=\"Null\")\n",
    "news = pd.read_csv(\"./news.csv\",sep=\",\", names=[\"newsid\", \"source\", \"credible\", \"tags\", \"timesshared\", \"datepublished\"], header=0)\n",
    "\n",
    "#for each newsitem concatenate the corresponding credibility value \n",
    "credible = []\n",
    "for item in usernews['newsid']:\n",
    "    credible.append(int(news[news['newsid'] == item].credible))\n",
    "\n",
    "usernews['credible'] = credible\n",
    "\n",
    "print(usernews.head())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Establishing data containers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "#binning the engagement into low, medium, and high\n",
    "bin_rates = {\"low\": {\"size\":(0, 99), \"totalInteractions\":[], \"true-pos-rates\":{\"x\":[],\"y\":[],\"mean\":0,\"stdev\":0,\"stderr\":0}, \"false-pos-rates\":{\"x\":[],\"y\":[],\"mean\":0,\"stdev\":0,\"stderr\":0}, \"true-neg-rates\":{\"x\":[],\"y\":[],\"mean\":0,\"stdev\":0,\"stderr\":0}, \"false-neg-rates\":{\"x\":[],\"y\":[],\"mean\":0,\"stdev\":0,\"stderr\":0}},\n",
    "             \"medium\": {\"size\":(100, 99999), \"totalInteractions\":[], \"true-pos-rates\":{\"x\":[],\"y\":[],\"mean\":0,\"stdev\":0,\"stderr\":0}, \"false-pos-rates\":{\"x\":[],\"y\":[],\"mean\":0,\"stdev\":0,\"stderr\":0}, \"true-neg-rates\":{\"x\":[],\"y\":[],\"mean\":0,\"stdev\":0,\"stderr\":0}, \"false-neg-rates\":{\"x\":[],\"y\":[],\"mean\":0,\"stdev\":0,\"stderr\":0}},\n",
    "             \"high\": {\"size\":(100000, 1000000), \"totalInteractions\":[], \"true-pos-rates\":{\"x\":[],\"y\":[],\"mean\":0,\"stdev\":0,\"stderr\":0}, \"false-pos-rates\":{\"x\":[],\"y\":[],\"mean\":0,\"stdev\":0,\"stderr\":0}, \"true-neg-rates\":{\"x\":[],\"y\":[],\"mean\":0,\"stdev\":0,\"stderr\":0}, \"false-neg-rates\":{\"x\":[],\"y\":[],\"mean\":0,\"stdev\":0,\"stderr\":0}}\n",
    "            }\n",
    "\n",
    "#scatterplots for correlation testing, x = engagement, y = action rate\n",
    "scatter_plots = {\"tp-scatterplot\": {\"x\":[], \"y\":[]},\n",
    "                 \"tn-scatterplot\": {\"x\":[], \"y\":[]},\n",
    "                 \"fp-scatterplot\": {\"x\":[], \"y\":[]},\n",
    "                 \"fn-scatterplot\": {\"x\":[], \"y\":[]},\n",
    "                }"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Finding 1: Processing data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# true positives = sharing/liking real news\n",
    "# false positives = disputing real news\n",
    "# true negatives = disputing fake news\n",
    "# false negatives = sharing/liking fake news\n",
    "\n",
    "#timessharedpresented = engagment displayed below each article\n",
    "usernews = usernews.sort_values(['timessharedpresented'])\n",
    "\n",
    "total_articles_played = 0\n",
    "tp_rate = 0\n",
    "tn_rate = 0\n",
    "fp_rate = 0\n",
    "fn_rate = 0\n",
    "\n",
    "#iterating through all news items to generate the scatterplots for each engagement bin\n",
    "for index, row in usernews.iterrows():\n",
    "    total_articles_played += 1\n",
    "    \n",
    "    #credibility 0 is low credibility\n",
    "    #credibility 1 is mainstream\n",
    "    #userclassification 0 is fact check action\n",
    "    #userclassification 1 is share action\n",
    "    #userclassification 2 is like action\n",
    "    \n",
    "    \n",
    "    if (row['userclassification'] >= 1):\n",
    "        if (row['credible'] == 1):\n",
    "            tp_rate += 1\n",
    "        elif (row['credible'] == 0):\n",
    "            fn_rate += 1 \n",
    "    elif (row['userclassification'] == 0):\n",
    "        if (row['credible'] == 1):\n",
    "            fp_rate += 1\n",
    "        elif (row['credible'] == 0):\n",
    "            tn_rate += 1\n",
    "\n",
    "    scatter_plots['tp-scatterplot']['x'].append(row['timessharedpresented'])\n",
    "    scatter_plots['tp-scatterplot']['y'].append(tp_rate / total_articles_played)\n",
    "    scatter_plots['fn-scatterplot']['x'].append(row['timessharedpresented'])\n",
    "    scatter_plots['fn-scatterplot']['y'].append(fn_rate / total_articles_played)\n",
    "    scatter_plots['fp-scatterplot']['x'].append(row['timessharedpresented'])\n",
    "    scatter_plots['fp-scatterplot']['y'].append(fp_rate / total_articles_played)\n",
    "    scatter_plots['tn-scatterplot']['x'].append(row['timessharedpresented'])\n",
    "    scatter_plots['tn-scatterplot']['y'].append(tn_rate / total_articles_played) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Finding 1: Spearmann Correlation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Liking/Sharing Low Credibility News - Spearman R: 0.9683572722887531, p-val: 0.0\n",
      "Fact-checking Low Credibility News - Spearman R: -0.9687715079496488, p-val: 0.0\n",
      "Liking/Sharing Mainstream News - Spearman R: 0.6578491792365091, p-val: 0.0\n",
      "Fact-checking Mainstream News - Spearman R: -0.6205593328735581, p-val: 0.0\n"
     ]
    }
   ],
   "source": [
    "#Given the skewed distribution of engagment values the data was sorted in logarithmic bins based on engagement values\n",
    "log_percieved_engagement = [math.log(val+1) for val in scatter_plots['fn-scatterplot']['x']]\n",
    "corr, p = stats.spearmanr(log_percieved_engagement, scatter_plots['fn-scatterplot']['y'])\n",
    "print('Liking/Sharing Low Credibility News - Spearman R: ' + str(corr) + \", p-val: \" + str(p))\n",
    "\n",
    "log_percieved_engagement = [math.log(val+1) for val in scatter_plots['tn-scatterplot']['x']]\n",
    "corr, p = stats.spearmanr(log_percieved_engagement, scatter_plots['tn-scatterplot']['y'])\n",
    "print('Fact-checking Low Credibility News - Spearman R: ' + str(corr) + \", p-val: \" + str(p))\n",
    "\n",
    "log_percieved_engagement = [math.log(val+1) for val in scatter_plots['tp-scatterplot']['x']]\n",
    "corr, p = stats.spearmanr(log_percieved_engagement, scatter_plots['tp-scatterplot']['y'])\n",
    "print('Liking/Sharing Mainstream News - Spearman R: ' + str(corr) + \", p-val: \" + str(p))\n",
    "\n",
    "log_percieved_engagement = [math.log(val+1) for val in scatter_plots['fp-scatterplot']['x']]\n",
    "corr, p = stats.spearmanr(log_percieved_engagement, scatter_plots['fp-scatterplot']['y'])\n",
    "print('Fact-checking Mainstream News - Spearman R: ' + str(corr) + \", p-val: \" + str(p))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Finding 2: Processing data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# true positives = sharing/liking real news\n",
    "# false positives = disputing real news\n",
    "# true negatives = disputing fake news\n",
    "# false negatives = sharing/liking fake news\n",
    "\n",
    "#iterating through all three bins (low, medium, and high)\n",
    "for key, value in bin_rates.items():\n",
    "    \n",
    "    #getting lower and upper bounds for the bin \n",
    "    l_bound = bin_rates[key][\"size\"][0]\n",
    "    u_bound = bin_rates[key][\"size\"][1]\n",
    "    \n",
    "    #finding unique users for the bin\n",
    "    bin_segment = usernews[(usernews.timessharedpresented >= l_bound) & (usernews.timessharedpresented <= u_bound)]\n",
    "    unique_bin_users = set(bin_segment.userid)\n",
    "    \n",
    "    #iterate through each user present in the bin\n",
    "    for ub_user in unique_bin_users:\n",
    "        ub_user_totalArticles = sum((usernews.userid == ub_user) & (usernews.timessharedpresented >= l_bound) & (usernews.timessharedpresented <= u_bound))\n",
    "        if (ub_user_totalArticles <= 0):\n",
    "            continue\n",
    "        ub_user_truePositiveRate = sum((usernews.userid == ub_user) & (usernews.userclassification >= 1) & (usernews.credible == 1) & (usernews.timessharedpresented >= l_bound) & (usernews.timessharedpresented <= u_bound))/ub_user_totalArticles\n",
    "        ub_user_falsePositiveRate = sum((usernews.userid == ub_user) & (usernews.userclassification == 0) & (usernews.credible == 1) & (usernews.timessharedpresented >= l_bound) & (usernews.timessharedpresented <= u_bound))/ub_user_totalArticles\n",
    "        ub_user_trueNegativeRate = sum((usernews.userid == ub_user) & (usernews.userclassification == 0) & (usernews.credible == 0) & (usernews.timessharedpresented >= l_bound) & (usernews.timessharedpresented <= u_bound))/ub_user_totalArticles\n",
    "        ub_user_falseNegativeRate = sum((usernews.userid == ub_user) & (usernews.userclassification >= 1) & (usernews.credible == 0) & (usernews.timessharedpresented >= l_bound) & (usernews.timessharedpresented <= u_bound))/ub_user_totalArticles\n",
    "        \n",
    "        bin_rates[key]['totalInteractions'].append(ub_user_totalArticles)\n",
    "        bin_rates[key]['true-pos-rates']['x'].append(ub_user_truePositiveRate)\n",
    "        bin_rates[key]['false-pos-rates']['x'].append(ub_user_falsePositiveRate)\n",
    "        bin_rates[key]['true-neg-rates']['x'].append(ub_user_trueNegativeRate)\n",
    "        bin_rates[key]['false-neg-rates']['x'].append(ub_user_falseNegativeRate)\n",
    "     \n",
    "    # computing mean, stdev, and stderr for the bin\n",
    "    bin_rates[key]['true-pos-rates']['mean'] = np.mean(bin_rates[key]['true-pos-rates']['x'])\n",
    "    bin_rates[key]['false-pos-rates']['mean'] = np.mean(bin_rates[key]['false-pos-rates']['x'])\n",
    "    bin_rates[key]['true-neg-rates']['mean'] = np.mean(bin_rates[key]['true-neg-rates']['x'])\n",
    "    bin_rates[key]['false-neg-rates']['mean'] = np.mean(bin_rates[key]['false-neg-rates']['x'])\n",
    "    \n",
    "    bin_rates[key]['true-pos-rates']['stdev'] = np.std(bin_rates[key]['true-pos-rates']['x'])\n",
    "    bin_rates[key]['false-pos-rates']['stdev'] = np.std(bin_rates[key]['false-pos-rates']['x'])\n",
    "    bin_rates[key]['true-neg-rates']['stdev'] = np.std(bin_rates[key]['true-neg-rates']['x'])\n",
    "    bin_rates[key]['false-neg-rates']['stdev'] = np.std(bin_rates[key]['false-neg-rates']['x'])\n",
    "    \n",
    "    bin_rates[key]['true-pos-rates']['stderr'] = bin_rates[key]['true-pos-rates']['stdev']/math.sqrt(len(bin_rates[key]['true-pos-rates']['x']))\n",
    "    bin_rates[key]['false-pos-rates']['stderr'] = bin_rates[key]['false-pos-rates']['stdev']/math.sqrt(len(bin_rates[key]['false-pos-rates']['x']))\n",
    "    bin_rates[key]['true-neg-rates']['stderr'] = bin_rates[key]['true-neg-rates']['stdev']/math.sqrt(len(bin_rates[key]['true-neg-rates']['x']))\n",
    "    bin_rates[key]['false-neg-rates']['stderr'] = bin_rates[key]['false-neg-rates']['stdev']/math.sqrt(len(bin_rates[key]['false-neg-rates']['x']))\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Finding 2: Statistical Testing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Kruskal-Wallis Statistical Test\n",
      "Fact-checking low-credibility news - chi squared:214.26488853840954, p value:2.9714650128461817e-47\n",
      "Liking/Sharing low-credibility news - chi squared:417.14482486231583, p value:2.619100743801467e-91\n",
      "Liking/Sharing mainstream news - chi squared:161.7976402003544, p value:7.346641335343658e-36\n",
      "Fact-checking mainstream news - chi squared:576.3710770785029, p value:6.96002577746557e-126\n",
      "\n",
      "\n",
      "Mann-whitney U test, fact-checking low-credibility news:\n",
      "low with medium - U:31889659.5, p value:0.00034034072672697\n",
      "low with high - U:7028005.0, p value:1.801286999337477e-39\n",
      "medium with high - U:7386855.5, p value:8.2588753770493e-46\n",
      "\n",
      "\n",
      "Mann-whitney U test, liking/sharing low-credibility news:\n",
      "low with medium - U:29256160.0, p value:1.7714770728358086e-40\n",
      "low with high - U:7491225.5, p value:2.765918193516069e-26\n",
      "medium with high - U:7006789.5, p value:1.5098206910907727e-76\n",
      "\n",
      "\n",
      "Mann-whitney U test, liking/sharing mainstream news:\n",
      "low with medium - U:29858951.5, p value:2.845372822703007e-25\n",
      "low with high - U:8048911.0, p value:3.7139110410148437e-06\n",
      "medium with high  - U:7927474.5, p value:1.967924544414238e-23\n",
      "\n",
      "\n",
      "Mann-whitney U test, fact-checking mainstream news:\n",
      "low with medium - U:32832624.5, p value:0.41291685483016827\n",
      "low with high - U:6204383.0, p value:3.5469137837888365e-98\n",
      "medium with high - U:6134225.0, p value:6.965300820250008e-136\n"
     ]
    }
   ],
   "source": [
    "#Kruskal-Wallis tests comparing the action rates across the three bins (low, medium, and high)\n",
    "print('Kruskal-Wallis Statistical Test')\n",
    "res = stats.kruskal(bin_rates['low']['true-neg-rates']['x'], bin_rates['medium']['true-neg-rates']['x'], bin_rates['high']['true-neg-rates']['x'])\n",
    "print(\"Fact-checking low-credibility news - chi squared:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "res = stats.kruskal(bin_rates['low']['false-neg-rates']['x'], bin_rates['medium']['false-neg-rates']['x'], bin_rates['high']['false-neg-rates']['x'])\n",
    "print(\"Liking/Sharing low-credibility news - chi squared:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "res = stats.kruskal(bin_rates['low']['true-pos-rates']['x'], bin_rates['medium']['true-pos-rates']['x'], bin_rates['high']['true-pos-rates']['x'])\n",
    "print(\"Liking/Sharing mainstream news - chi squared:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "res = stats.kruskal(bin_rates['low']['false-pos-rates']['x'], bin_rates['medium']['false-pos-rates']['x'], bin_rates['high']['false-pos-rates']['x'])\n",
    "print(\"Fact-checking mainstream news - chi squared:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "\n",
    "print('\\n')\n",
    "#Pairwise Mann-Whitney U tests comparing the action rates between bins (low, medium, and high)\n",
    "print('Mann-whitney U test, fact-checking low-credibility news:')\n",
    "res = stats.mannwhitneyu(bin_rates['low']['true-neg-rates']['x'], bin_rates['medium']['true-neg-rates']['x'])\n",
    "print(\"low with medium - U:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "res = stats.mannwhitneyu(bin_rates['low']['true-neg-rates']['x'], bin_rates['high']['true-neg-rates']['x'])\n",
    "print(\"low with high - U:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "res = stats.mannwhitneyu(bin_rates['high']['true-neg-rates']['x'], bin_rates['medium']['true-neg-rates']['x'])\n",
    "print(\"medium with high - U:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "\n",
    "print('\\n')\n",
    "print('Mann-whitney U test, liking/sharing low-credibility news:')\n",
    "res = stats.mannwhitneyu(bin_rates['low']['false-neg-rates']['x'], bin_rates['medium']['false-neg-rates']['x'])\n",
    "print(\"low with medium - U:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "res = stats.mannwhitneyu(bin_rates['low']['false-neg-rates']['x'], bin_rates['high']['false-neg-rates']['x'])\n",
    "print(\"low with high - U:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "res = stats.mannwhitneyu(bin_rates['high']['false-neg-rates']['x'], bin_rates['medium']['false-neg-rates']['x'])\n",
    "print(\"medium with high - U:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "\n",
    "print('\\n')\n",
    "print('Mann-whitney U test, liking/sharing mainstream news:')\n",
    "res = stats.mannwhitneyu(bin_rates['low']['true-pos-rates']['x'], bin_rates['medium']['true-pos-rates']['x'])\n",
    "print(\"low with medium - U:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "res = stats.mannwhitneyu(bin_rates['low']['true-pos-rates']['x'], bin_rates['high']['true-pos-rates']['x'])\n",
    "print(\"low with high - U:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "res = stats.mannwhitneyu(bin_rates['high']['true-pos-rates']['x'], bin_rates['medium']['true-pos-rates']['x'])\n",
    "print(\"medium with high  - U:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "\n",
    "print('\\n')\n",
    "print('Mann-whitney U test, fact-checking mainstream news:')\n",
    "res = stats.mannwhitneyu(bin_rates['low']['false-pos-rates']['x'], bin_rates['medium']['false-pos-rates']['x'])\n",
    "print(\"low with medium - U:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "res = stats.mannwhitneyu(bin_rates['low']['false-pos-rates']['x'], bin_rates['high']['false-pos-rates']['x'])\n",
    "print(\"low with high - U:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n",
    "res = stats.mannwhitneyu(bin_rates['high']['false-pos-rates']['x'], bin_rates['medium']['false-pos-rates']['x'])\n",
    "print(\"medium with high - U:\"+str(res.statistic) + ', p value:'+str(res.pvalue))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Finding 2: Graph (figure 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABNMAAAKeCAYAAACPh13AAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZzO9f7/8cd79n23Lw36HpSQ0EKZSCqn5VjKcgpZQk4pJxJ1xqlQRIoia5af5Tg6OTkiMimULSrVyTpRZpDZZ8z6+f1xzXWdGXNdlwszRjzvt9vndl3X5/PePp/r6nZrXl7v99tYloWIiIiIiIiIiIicm1dlD0BEREREREREROT3QsE0ERERERERERERDymYJiIiIiIiIiIi4iEF00RERERERERERDykYJqIiIiIiIiIiIiHFEwTERERERERERHxkE9lD0CuKFZlD0BEREREREREKp2p7AFUJGWmiYiIiIiIiIiIeEjBNBEREREREREREQ8pmCYiIiIiIiIiIuIhBdNEREREREREREQ8pGCaiIiIiIiIiIiIhxRMExERERERERER8ZCCaSIiIiIiIiIiIh5SME1ERERERERERMRDCqaJiIiIiIiIiIh4SME0ERERERERERERDymYJiIiIiIiIiIi4iEF00RERERERERERDykYJqIiIiIiIiIiIiHFEwTERERERERERHxkIJpIiIiIiIiIiIiHlIwTURERERERERExEMKpomIiIiIiIiIiHhIwTQREREREREREREPKZgmIiIiIiIiIiLiIQXTREREREREREREPKRgmoiIiIiIiIiIiIcUTBMREREREREREfGQgmkiIiIiIiIiZ4mLi8MYQ3x8fLm3bYzBGENCQkK5ty0iFc+nsgcgIiIiIiIinsl+oU1lD6FcBI3fUiHtxsfHM27cOAAsy3Jb9siRI9SrVw+A+fPn07dv3woZU2WIjY0lMTHRo7J9+vRhwYIFFTsg+d1LTU3lzTffBGD48OFERERU8ogql4JpIiIiIiIiImepW7cuDRs2JCYmprKHcsECAgIIDw93W+Zc10XAFkyzB6r79u2rYFplD0CuHFfKv5KJiMjvR0VlNoiIiCxcuLCyh3DRHnnkEWWdiVQArZkmIiIiIiIiIiLiIQXTRERERERERM5yrg0I8vPzmTp1Ks2bNyc4OJioqCji4uJYuXKlR/XtMjIyGDt2LI0aNSIwMJDo6Gj++Mc/8tVXX5XzHXkmISHBsUECwIEDB3j88cepU6cO/v7+1K5dm4EDB/LLL7+4befbb7+lR48eVK9enYCAAOrXr89f/vIXTpw4UaaPkvLz8/nkk0946qmnaNmyJTVq1MDPz4+qVavSqVMnli5des718BITE+nfvz+1a9d2jLlfv34cOHCAI0eOOPo+cuSI0/qFhYUsWLCATp06Ua1aNfz8/KhSpQqdOnVi2bJlLvuPjY3FGMOCBQvIzs4mPj6exo0bExQURM2aNXn00Uc5fPiwo/ypU6cYNWoUf/jDHwgMDKR69eoMGDCA5ORkt/d35swZ3nrrLdq1a0dMTAx+fn5Ur16dhx56iI8//thlvZIbX5zP7y4uLs6xviBAvXr1HG0ZY4iLi3M73iuRpnmKiIiIiIiInIesrCzuu+8+Nm/eDIC3tzf+/v5s3ryZzz77jOeff96jdo4fP06LFi04cOAAAQEBeHl5cfr0adasWcP69ev597//TadOnSryVtzatGkTDzzwAJmZmYSGhlJUVMQvv/zCnDlz+M9//sP27dupVatWmXoffPABjzzyCPn5+QCEhIRw/Phxpk+fzj//+U/Gjx/vss8tW7Zw9913Oz77+/vj7+/PyZMnWb9+PevXr+eDDz5g2bJleHmVzQ/atm0bnTp1IiMjA4DAwEDS0tJYsGABq1atYs6cOW7vOTk5mQcffLBUUCk8PJxTp045+l+6dCn/+Mc/8PPzc9pGWloat956K9988w0BAQEYYzh+/DiLFy9m48aNbN26laKiIu666y4OHz5MUFAQRUVFJCcnM3fuXDZv3szOnTsJCwsr0/b+/fvp3Lkz+/fvB2wBsrCwMJKTk/nwww/58MMPGTJkCO+8847Lezzf311UVBQxMTGcOnUKgJiYGLy9vUtdv9ooM01ERERERETkPIwYMYLNmzfj5eXFa6+9RmpqKqdPn+bEiRM89dRTTJw4kb17956znSeffBI/Pz8+/fRTsrKyyMzMZPv27TRs2JD8/HyeeOIJioqKLsEdOde1a1fat2/PDz/8QHp6OllZWSxfvpzQ0FB+/fVXRo8eXabOoUOH+POf/0x+fj4tWrRg586dZGRkkJ2dzSeffIKfnx/PPvusyz4DAwPp1asXa9asISkpiZycHDIyMvjtt9+YNm0aYWFh/OMf/2D69Oll6qamptK1a1cyMjKoX7++47lmZGSwfft26tWrxxNPPOGy77y8PO6//36++uorWrRowZo1a8jKyiI1NZXMzEzef/99qlatyurVqxk1apTLduLj40lPT2f9+vWO/tevX09MTAzHjx9n1KhR9OzZk/DwcLZt2+b47pcvX05QUBD79+/n9ddfd3p/d999N/v376d9+/Zs3ryZnJwcUlNTSU1NZcqUKYSEhPDuu+8ybdo0l+M739/dqlWr2LFjh+Pzjh07SEpKchyrVq1y2deVSsE0ERERERERueJUr17d7dGqVasLavfnn39m9uzZAIwbN46RI0cSEhIC2DJ2pk2bRp8+fUhNTT1nWz4+PmzatIk777wTLy8vjDG0atWKf/zjH4BtuuK2bdsuaJwAy5cvP+dz2Lp1q8v6zZs354MPPqBRo0YA+Pn58fDDD/Pqq68CsHLlSgoKCkrVGT9+PNnZ2VStWpVPPvmEm266CbBlUN11112sW7eO7Oxsl33efPPNLFmyhPvuu49q1ao5poJGRUXx1FNPMXfuXADeeuutMnWnT5/O8ePHCQgIYN26ddx5552O+q1atWLDhg2lMqrONnv2bHbs2MH1119PQkIC9913H0FBQQAEBwfz2GOP8Z///AdjDO+88w4nTpxw2k5ubi6ffPIJHTt2xMvLC29vbzp27Mhrr70GwIoVK0hMTGTDhg3ccsstAPj6+vLwww8zYsQIAJYtW1am3VdffZUjR47Qvn171q1bx+23346/vz9gy5575plnHBtnvPLKK2W+G7uK/t1dDRRMExERERERkStOcnKy28M+Ze18/fOf/6SoqIigoCCeeeYZp2VefPFFj9oaNGgQVatWLXP+hhtucKxR9c0331zQOMG2tta5nkNeXp7L+i+88ILTqZQPPvggADk5OY7phgCWZfHPf/4TgCFDhjid/tewYUMefvjhC76nzp07A3Dw4EGOHz9e6po9GPTII49w7bXXlqkbExPDkCFDXLZtnwI6dOhQQkNDnZa56aabuP7668nLy2PTpk1Oy3Tt2tVp/yWnTg4aNIjo6GiXZQ4ePEhWVpbjvGVZzJs3D7BlRvr4OF+166GHHiIsLIxTp06xa9cup2Uq+nd3NVAwTURERERERK44lmW5PUouBH8+du/eDUDLli0JDg52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to2srCwyMzNZvnw5QUFB7N+/n9dff73Sxr969Wpmz57NlClTSElJISUlhVOnTjFgwADAtjbep59+WqbepEmTHIG0Z599lpMnT3L69GlSUlIYP348y5YtY/Xq1S77rVevHmPHjuXrr78mMzOTtLQ0cnNz+e677+jduze5ubn06dOHX3/9tUzdZcuWOQJpvXr14tixY6SkpJCRkcF7773H9u3b3f4utm/fTteuXcnMzOSJJ57ghx9+ICcnh8zMTBITExk6dCh5eXn079+fnTt3umynV69ePPjggyQmJpKamkpaWhqjR492jHHixIkMHTqUoUOHkpSURGpqKqdPn3b8dzNp0iR++umnMu0aYx4C3iv+OBGIBQKxBbkaAf8AwoCVrjLUgCrAPOB9oK5lWRFAKDAMW6DsemCkvbBlWUcty6oOTC4+tdWyrOpnHctdPozzoGCaiIiIiIiIXJH69OmDl5cXK1eudGTvAKxYsYLMzEw6dOjgcnMCu++++4633nqLoKAgPvnkE4YMGUJUVBRgywSKi4vjs88+o3bt2uzevbtM8MUemGjXrh3Lli1z9BcYGMjQoUN56623SE1NLc/bPm+5ubl88skndOzYES8vL7y9venYsSOvvfYaYHteiYmJbNiwgVtuuQWw3fvDDz/MiBEjAFvg5WJ06dKF6tWruzxatWrlsm5KSgqzZs3imWeecWTHRUdHM3v2bG666SYAli5dWqpOdna2Y2OH/v3788YbbxAdHQ3YMsxGjx7NSy+9REpKist+//a3v/Hyyy/TvHlzgoODAfDy8uL6669n8eLFdO7cmaysrDLBXMuyeOmllwDo2LEjixcvplatWgAEBAQwcOBA3n33Xbd9Dxs2jLy8PF588UVmzpxJo0aN8Pb2BqBu3brMmDGDp556ioKCAl555RWX7bRq1YqlS5dSt64tnhUaGsr48eO5/fbbAdvvt0+fPrz11ltUrVoVsO28OmfOHGJjYykqKmLFihWl2szLywOYXvxxsGVZoy3LSrT+57+WZT0MrMYWUHvWxfCCgGWWZQ20LOto8bPLtixrBvB2cZmeLm+uAimYJiIiIiIiIlekOnXqcNdddzky0ezsUzwff/zxc7Yxd+5cLMuic+fO3HDDDU7LhIaG8tBDDwGwbt06x/lvvvnGsW7V2LFj8fIq+yf4wIEDHYGUytK1a1euvfba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UjBNRERERERERETEQwqmiYiIiIiIiIiIeEjBNBEREREREREREQ8pmCYiIiIiIiIiIuIhBdNEREREREREREQ8pGCaiIiIiIiIiIiIhxRMExERERERERER8ZCCaSIiIiIiIiIiIh5SME1ERERERERERMRDCqaJiIiIiIiIiIh4SME0ERERERERERERDymYJiIiIiIiIiIi4iGfyh6AiIiIiIiIeGZF74WVPYRy8fCSxyqk3fj4eMaNGweAZVkV0kdlS0hI4M477/S4/KZNm4iLi6u4AckVISEhgYSEBGJjY+nbt29lD+eyp2CaiIiIiIiIyO9QZGQkfn5+bsuc67oI2IJp48aNo127dgqmeUDBNBEREREREZHfoVWrVinrTKQSaM00ERERERERERERDymYJiIiIiIiIle9tLQ0/v73v9OiRQvCwsIIDAzk//7v/xgyZAiHDh0qU/7kyZN4eXlhjOG7774rc33ChAkYYzDGMH369DLXt23bhjEGf39/cnJyKuSenOnbty/GGMdUvpUrVxIXF0dUVBRBQUE0b96cadOmUVRU5LINy7KYP38+t956K6GhoYSHh3PzzTfz3nvvYVlWmT5KOnHiBPPmzaNLly40btyY8PBwAgMDufbaaxkwYAD79u075z18+OGHdOjQgYiICEJCQmjWrBmvv/46+fn5xMfHY4xxm7GXlJTE888/T7NmzQgPDycgIID69eszYMAAvv/+e6d1EhISHN8nwDfffEPPnj2pWbMmgYGBNG7cmMmTJ1NQUOCos2XLFh566CFq1KhBQEAATZo0YcaMGedcz+/gwYP85S9/oXHjxoSEhBAUFETjxo0ZPnw4P//8s9M6CxYswBhDbGwsALt27eLhhx+mRo0a+Pv7U79+fZ599llSUlJK1Tty5AjGGMdag5999pnjPu3HggUL3I73aqRpnlJu3uy0qbKHICJy1XmhndZBERERuVj79u3jnnvu4dixYwAEBATg6+vLgQMHOHDgAPPnz2fJkiV07drVUadKlSo0adKEb7/9lk8//ZQmTZqUavPTTz8t9X7YsGFOr99yyy0EBgZW1K25NWzYMGbMmIGXlxdhYWHk5OSwd+9ehg8fzu7du3n//ffL1CksLKR3794sX74cAGMMERER7Ny5k+3bt5OQkOB2nbaRI0eWajcsLIyCggIOHjzIwYMHWbx4cZlnXdJf//pX3njjDcfniIgIvv/+e0aNGsWaNWto27at23v+6KOP6NmzJ5mZmQD4+vri5+fH4cOHmTt3LosWLWL27Nk89pjrTTLWrl1Lly5dOHPmDOHh4eTm5vLjjz/y3HPPsWvXLpYuXcqcOXMYPHgwRUVFhIWFkZuby759+xg2bBhHjx5l4sSJTtuePXs2Tz75JPn5+QD4+/vj5eXFjz/+yI8//sj8+fNZuXIlHTt2dDm+//f//h99+/YlPz+f8PBwCgoKOHz4MFOnTmX9+vV8+eWXhISEAODt7U21atXIzMwkKysLX19foqKiSrVXWb/Py5ky00REREREROSqlZGRwf3338+xY8eoVasWa9asISsri/T0dPbs2cMtt9xCbm4uvXv3Zu/evaXq2nfVLBk4A8jLy2Pr1q0EBgbi6+tLQkJCmUyvTZs2lWrjUlu9ejWzZ89mypQppKSkkJKSwqlTpxgwYAAACxcuLHNfAJMmTXIE0p599llOnjzJ6dOnSUlJYfz48SxbtozVq1e77LdevXqMHTuWr7/+mszMTNLS0sjNzeW7776jd+/e5Obm0qdPH3799dcydZctW+YIpPXq1Ytjx46RkpJCRkYG7733Htu3b+fdd9912ff27dvp2rUrmZmZPPHEE/zwww/k5OSQmZlJYmIiQ4cOJS8vj/79+7Nz506X7fTq1YsHH3yQxMREUlNTSUtLY/To0Y4xTpw4kaFDhzJ06FCSkpJITU3l9OnTjky9SZMm8dNPP5Vp91//+heDBg0C4Pnnn+fIkSPk5OSQlZXFjz/+SPfu3UlPT6dbt24uM9ROnjzJ448/Tp8+ffj5559JTU0lIyOD6dOn4+vry759+3j99dcd5evUqUNSUhJ//etfAbjttttISkoqdTzyyCMun8XVSsE0ERERERERuWq98847HD58GF9fXz7++GPuu+8+vLxsfyo3a9aM9evXExsbS25uLmPGjClVt3379oBtalzJYNmXX35JdnY2t912G61atSIlJYU9e/Y4rufm5rJ161bg4oJpXbp0oXr16i6PVq1auaybkpLCrFmzeOaZZwgLCwMgOjqa2bNnc9NNNwGwdOnSUnWys7OZMGECAP379+eNN94gOjoasGWYjR49mpdeeqnMVMKS/va3v/Hyyy/TvHlzgoODAfDy8uL6669n8eLFdO7cmaysLObNm1eqnmVZvPTSSwB07NiRxYsXU6tWLcCWSThw4EDeffddt30PGzaMvLw8XnzxRWbOnEmjRo3w9vYGoG7dusyYMYOnnnqKgoICXnnlFZfttGrViqVLl1K3bl0AQkNDGT9+PLfffjsAo0ePpk+fPrz11ltUrVoVsO28OmfOHGJjYykqKmLFihWl2szLy3NkL86cOZMJEyZwzTXXOKZaNmzYkBUrVvDAAw+Qnp7OlClTnI4tOzubHj16MHv2bOrUqQNAUFAQTz75JH/5y1+Ast+rnD8F00REREREROSqZc+y6tatW5mpmmALlIwcORKwTe9LS0tzXGvXrh1eXl6kpqaye/dux3l71ln79u0dAbeSWV5ffvklOTk5BAQEcMstt1zw2FNSUkhOTnZ5nDx50mXdOnXquJzK+MADDwC2dcFKWrduHenp6QBlAot2I0aMICgo6EJuB4DOnTsD8MUXX5Q6v2fPHvbv3w/ACy+84Fi7rKQ+ffo4Alxn27t3Lzt27MDX15cRI0a47N/+TDZs2EBhYaHTMqNGjXLaf6dOnRzv7ZlqJXl7e3PXXXcBZZ/t2rVr+eWXX6hWrRr9+vU75/jWrVvnsszYsWOdnn/wwQcBOHDgANnZ2S7ry7kpmCYiIiIiIiJXpby8PEdQwx7kcMa+PlVRUVGpoFlERAQ33ngjUHaNNLAF05xNBbW/v+222/D397/g8W/atAnLslweR44ccVm3VatWjgy8s9WsWROA06dPlzpvv/e6detSr149p3VDQ0MdmW2u7N27l6FDh9K0aVPCwsIcGzkYYxg6dCiAY/26s/v29fXltttuc9quMYZ27do5vWYPzhUVFdGwYUOX2Xz33HMPAFlZWfz2229O22rdurXT89WqVQMgKiqK+vXruy1zdgadfXwpKSnUqFHD5fgGDhwIQGJiotP2o6KiuPbaa51es3+vzvqX86MNCEREREREROSqdPr0aUf2kX3KoDO1a9d2vD9x4kSpa3feeSe7du3i008/ZeTIkeTk5PDVV18RGhpKy5YtKSgoICAggM8//5yCggJ8fHwqfb00sAW9XPHxsYUK7Ivg29kz3UoGZZxx9yynT5/O008/7ZgWa4whPDzcEVTMyckhPT2drKwsp31HR0e73eDAVd/2NdgKCwtJTk52O347V9lbrp6d/bldyLO1jy8vL8+j8bnaAdaTvp31L+dHmWkiIiIiIiJy1XM2bc/ZtbPL2QNiX3zxBfn5+WzZsoXc3FzuuOMOfHx8CAgI4NZbbyUzM5Pt27eTnZ3NV199BfxvzbXfC8uyAPfPqmS5s/3www8MHz6coqIiunfvzvbt2zlz5gwpKSmOxe7ta4Gd3cbF9m0PmjZq1MhtNl/JIzY21m1f5ck+vnvuucfj8UnlUWaaiIiIiIiIXJWioqLw9vamsLCQo0ePuixX8lqVKlVKXbMHzbKysvjqq69KTfG0u/POO9m0aROffvopmZmZ5OXlERwc7HaDgMuRfTF9ZzttluTq+sqVKyksLKRx48YsW7bM6TTTpKQkt32fOnWKvLw8l9lprvquXr06AIcOHSIrK8ux+cHlwj6+b7/9tpJHIp5QZpqIiIiIiIhclfz8/GjatCkAGzdudFluw4YNgG3XyRYtWpS6FhISQsuWLQHbWmglNx+wK7kJgf1627Zt8fX1Lac7uTTs956YmOhyPbbMzEx27drl9Jo9KNmsWTOX67XZn7WrvvPz8x07oZ7Nsiw2b97s9FqbNm0A2zTKDz74wGmZymQf3y+//FJm84VLwf59KOPNMwqmiYiIiIiIyFWrR48egC1r6rvvvitzPTMzk9dffx2A++67j/Dw8DJl7MGy1atXs3PnTqKjo2nWrJnjeuvWrQkODmbbtm2sXbsWqNz10i7U3XffTVhYGADjx493Wmbq1Kku1xqzP7tvv/3WadBm7dq1JCQkOK3bvHlzx8L6EydOdFp/8eLFLhfmb9mypWOziDFjxrjd6RTKbr5Q0e6//35q1KgBwNNPP33O3TbLe3z27zU1NbVc271SKZgmIiIiIiIiV5xTp065PexBgyFDhlCvXj3y8/O59957Wbt2rWNx/G+//ZZOnTpx+PBh/Pz8eOWVV5z2ZQ+M7dq1i4KCAuLi4kqt7eXr60vbtm05c+YMe/fuLVXn9yQ4OJhRo0YBMHv2bEaOHOkI6mRkZPDaa68RHx9PZGSk0/r2nTL37dvHk08+6aiblZXFrFmz6NatG9HR0U7rGmMYN24cAOvWraNPnz6OKZ1nzpxh7ty5PPHEEy77NsYwc+ZM/P39+fnnn7n55ptZuXJlqaDVL7/8wuLFi+nYsaPjPi+VgIAA3nnnHYwx7N69mzZt2rBu3Try8vIcZQ4fPsysWbNo3bo177zzTrn236RJE8D23bjK/JP/UTBNRERERERErjhVqlRxe8TFxQG23Q9Xr15NrVq1OHbsGPfddx/BwcGEh4fTtGlTtm7dir+/P0uWLCmVbVZSmzZtSq3h5WxjgZLBs7CwMG666aaLvscuXbpQvXp1t8fkyZMvup+SRo4cSbdu3QCYNGkSVapUISoqisjISJ5//nl69+7N/fffD9gCRCV16NDBkQn47rvvEh0dTWRkJOHh4QwePJjGjRsTHx/vsu9evXoxfPhwABYtWkTt2rWJiooiLCyMAQMGcOuttzJ48GCnfYMtQ/Df//430dHRHD58mO7duxMWFkZMTAzBwcHUrl2bRx991OVU04r20EMPsWjRIoKCgtizZw/33HMPwcHBxMTEEBAQQP369Rk8eDA7duw450YM5ysuLo6GDRtSWFhImzZtiIqKIjY2ltjYWFauXFmufV0JFEwTERERERGRq1qTJk3Yt28f8fHxNG/eHB8fH3Jzc2nQoAGDBw9m3759jgCSM4GBgdxyyy2Oz86CaSXP3X777Xh7e1/0uFNSUkhOTnZ7ZGZmXnQ/Jfn4+LBixQrmzJlD69atCQwMpKCggJYtWzJnzhwWLlzoyPqLiIgoU3/JkiW8+eabNG3aFH9/fwoLC7nhhhuYMGECW7ZsISQkxG3/U6dOZdWqVcTFxREaGkpubi6NGzdm0qRJrFu3jqysLJd9A3Ts2JEDBw4wYcIE2rZtS3h4OKmpqXh5eXHdddfRv39/Vq9ezdtvv32RT+rC9O7dmwMHDjB27FhatmxJSEgIqampBAQE0Lx5c4YNG8aGDRvKPXPOx8eHjRs3MmDAAGJjY8nKyiIxMZHExMRy/w1dCYwWl5PyMv6zPP2YREQusRfaOd/JSkRERKQyWJZF3bp1OXbsGAsXLuTRRx+9pP23adOGrVu38ve//50XX3zxkvYtpZRv6txlRplpIiIiIiIiIlIuFi1axLFjx/Dx8aFDhw6XtO/PPvvMsd6XfX02kYqgYJqIiIiIiIiIeKxnz56sXLmSU6dOOc4lJyczceJEBg4cCMBjjz1GzZo1y73vJ598kgULFpCUlOTY0TM1NZVZs2bx4IMPArYpta1atSr3vkXsNM1Tyo2meYqIXHqa5ikiIiKXWkREBGlpaQAEBQXh6+vr+Ay2NeE++ugjwsLCyr3v5s2bO3ZE9ff3JygoiNTUVEdg7brrrmP9+vXUqlWr3PuW83JFT/P0drdThsj5+DyxML6yxyAicrW5PfbiFy8WEREROR81a9YkICCA/Px8cnNzycrKIjo6mjZt2jBmzBjeeOMNgoKCKrTvvLw88vPzSU9PJyIigpYtW/LMM88wa9YsoqOjK6RvOS/jKnsAFUmZaVJulJkmInLpKTNNRERERC5DV3RmmtZMExERERERERER8ZCCaSIiIiIiIiIiIh5SME1ERERERERERMRDCqaJiIiIiIiIiIh4yKeyByAiIiLujYnzL/X51YRcp+WMKb3OqzYZEhEREREpf8pMExERERERERER8ZCCaSIiIiIiIiIiIh5SME1ERERERERERMRDCqaJiIiIiIiIiIh4SME0ERERERERERERD1V4MM0Ys8AYYxljFji5llB8Lb6ix3GpGGP6Ft/Tkcoei4iIiIiIiIiIlK/zCqYZY+KLA0VWRQ3oUjPG/Kv4nvqfdf4aY8wEY8wOY0yKMSbfGJNsjPnGGPNPY8xwY0yzyhq3iIiIiIiIiIhcej6XoI/jwH+LXy8rxphAoCNQBHxU4nxv4D0gqETx9OLPNxQfXYBEIPYSDVdERERERERERCpZhU/ztCxrtGVZjSzLGl3RfV2AjtgCZF9alpUMYIxpBSwsPv8N0A0IsSwr3LKsUKAq8BCwAMiqjEGLiIiIiIiIiEjluBSZaZezB4tfPyxxbji2IOMJ4A7LstJKVrAs62Rx+Q+LM9tEREREREREROQqUakbEHhQt0/xWmWWMWa8k+txxpilxpifjTFnjDFpxpjtxpiRxpjgc7TtBfyx+GPJYFrz4teEswNpZ7MsK8eDe7jJGLPCGHPcGJNrjDlkjJlijIl0Ud7XGNPRGPOWMWZncb08Y8wJY8w6Y0xPY4xxUTeu5Jp2xpgbjTFLjDHHip9jwlnlvYs3TFhXvB5cnjHmZPHnHq76ERERERERERG5Wl22mWnGmFHARGzrmf3FsqzpJa75AO8CA0pUyQSCgVbFx+PGmE6WZSW66OI2bFM2f7Qs679Ortcuh3vohW06qC+Qhu151wOeAe42xtxiWVbmWdXaAOtLfM4tPqoAdxcffzLG9LAsq8hN312BpcV9pwMFZ12vhi2IeHOJ02lATIl+ehpjuluWlXcety0iIiIiIiIicsWq8My082VspmELpOUCPUoG0opNxhZISwaGAtHF65kFAncCXwMNgVXFGWjOOJviCbC9+PU2Y8wIY4zfBd5KFWAe8D5Q17KsCCAUGAbkA9cDI53UywH+H9AZqA4EFt9bNPA0tsBY9+J23FkAfAI0Ll7vLRAYCFB8T//GFkjbXdxXcPEYQ4A+2Ka5PgC8dgH3LiIiFWhMnL/jMMY4DhERERERqXiXVTCtOMizFHgKW5bUPZZl/eOsMk2Kr2cDHS3LeteyrNMAlmXlW5aVALQDjgEtsAWEnHEVTJsIZBS/nwwkGWM+MMaMMcbcY4yJ8PB2goBllmUNtCzraPH4si3LmgG8XVym59mVLMv6yrKs3pZl/ceyrGTLsqzi86cty3oL6F9c9Klz9P898IBlWT+WaHt/8duB2LL39gFxxX1lF5fJsixrIXAfYAFDjTFVPbxnEREREREREZEr2mUTTDPGhAEfA48Ax4F2xYGxs/UHDLDGsqxvnbVlWVYG8K/ij52c9HUd8H/YMtu+Oqvuf7EF43YUn4rEtnvnK8Ba4DdjTIIx5iEPbusVF+ftAbxrjTFBHrRT0pri1wbGmBpuyk2yLKvQxTX79Nh3ip9VGZZl7cIWbPPDlu0nIiIiIiIiInLVu1zWTKsBfIZt8f+fgE6WZR1xUbZt8eu9xpgkN22GFL9e4+SaPStttbN1xyzL+hpobYxpiS1D69bisVXHFoBsB7Qr3lThcXv22FlOW5Z1wMXYfi3xPhJblp2DMSYUGIxtg4TGQAS2tc/OVgtb4NGZLc5OFrfdtPjjy8aYl1zUB4gqfnX2DEVERERERERErjqXSzBtUPHrGeAu+7RIF2oWv4bwv4CZO84yv1xN8SzFsqydwE77Z2NMLNAVeB7bQv19gV3A2Wu6wf+mijpTcjOAUkEyY8wfgI2U3gAhG0jFthkDQLXiV3c7lp5wcd4eEIT/BcvO5Xyz50REpAK9mpDreP9Cu/8t7al100REREREKt7lMs3zI2xrpAUA888x9dG7+PV5y7KMB0dcycrGmOpAayALW9DKY5ZlHbEs6w1smWk5xacHuKlyIeZjC6QdwbbRQLRlWcGWZVW1LKs6tmw0O5d/NbmZ4uld4v0tHj7D+Iu7JRERERERERGRK8PlEkzbBdwFpAAdgDXGGFdZV/apnTdcYF8PYAtCrbMs68yFNGBZ1vfAF8UfG17gOMowxtQBbiv+2NOyrJX2zRVKqH6R3SSXeH+hz1BERERERERE5Kp0uQTT7FMqOwCngThgrTHG2TRO+1pgnV1cPxf7xgFup3h6ILP4NddtqfNTp8T7r12UuetiOrAsKwXbTp8APS6mLRERERERERGRq81lE0wDx8L/7YFTwO3Ax8UL5pc0G7CwLco/yV17xhjfkgG34vftgUJsU0ud1WlvjHG22H/JMrX4X1Brt7uy5ymtxPtmTvoNBcaWQz/vFb92MMa4DagZYzxdV01ERERERERE5Ip3wcE0Y0zMOY6IC2nXsv4/e3ceZmlV3wn8+5NWVlnERFyIYDTRoIbAJAouNDKiCGrighEiMJooiU5cRk2ERDFxiYpL1JlEHDWIG1EjJhqi0YgiODoaMRrHJQghEVyQRehm58wf71v07epaTld3dXVXfT7P8z73vvt5b917qu63zntO+1qSQzN0oP+QJJ+sql0n1l+Q5E3j7IlV9cGq2r/GSHEXqwAAIABJREFUXperaruq+uWq+uMkF2YYhXPKo5Nsn+TcGW6fnPLaJN+rqj+rqodW1Y4T13ynqvrtDLd4ToV8r1/Idc7im0kuGZ+/s6oOnDj3QUnOyTD656b6yyRfHJ+fUVWvGG8xnTrXTlW1uqremuE1BAAAACCbNprnj+dZ/7WsH2R1a619o6oOTfJPSR6c5B+r6lGttavGTV6Uod+z5yV50jhdX1VrkuyW9a+rTTzvGcXzpgwDAPzBOLWq+mmGUTcnB0a4McmLWmsfX8Alzqi11qrq2Uk+kmS/JF+uqrXj6p0yjOr5uCSf2sTz3FBVRyU5M0NLvZOTnDxe560ZXsOpwQ1unvkoAAAAACvPVnWb56Sxk//VSS7LMPrmp6pqj3HdLa215yc5IMMti9/OcOvmbhkGMTgvySlJ9m+tnZckVbUqyZHj4ecK0w5NclSSNyQ5N0OH/TtmCNMuT3J+klcmuV9r7c2b52rXaa19LMnDk3w8yVUZgsHLM4zyeUBrbaNGIJ3jPJdnuFX18Uk+lOQ/MrTa2zHJ95OcneQ5SfbZHOcDAAAAWA6qtTb/VstAVT0iyaeT/EtrbYP+yNh0r/rsjSvjzQSwhZ28evv15l95zrqxb0465A63PR97PLjNSvkdDwDAVqfm32TbtdW2TFsEPbd4AgAAAMCsNqXPtG3NvyZ5eZIzlrogAAAAAGybVkyY1lo7banLAAAAAMC2bSXd5gkAAAAAm2TFtEwDgG3V5IADczHgAAAALD4t0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADqtWuoCsHzc+7QPLHURALaIo9973FIXAQAAWCJapgEAAABAJ2EaAAAAAHQSpgEAAABAJ2EaAAAAAHQSpgEAAABAJ2EaAAAAAHQSpgEAAABAJ2EaAAAAAHQSpgEAAABAJ2EaAAAAAHQSpgEAAABAJ2EaAAAAAHQSpgEAAABAJ2EaAAAAAHQSpgEAAABAJ2EaAAAAAHQSpgEAAABAJ2EaAAAAAHQSpgEAAABAJ2EaAAAAAHQSpgEAAABAp1VLXQAA2No85X3Hrzd/5jGnz7l9Va0331rb7GUCAAC2DlqmAQAAAEAnYRoAAAAAdBKmAQAAAEAnYRoAAAAAdBKmAQAAAEAnYRoAAAAAdBKmAQAAAEAnYRoAAAAAdBKmAQAAAEAnYRoAAAAAdBKmAQAAAEAnYRoAAAAAdFq11AUAgK3dU953/JzzAADAyqFlGgAAAAB0EqYBAAAAQCdhGgAAAAB00mcaAMzjzGNOX2/+6Pcet958VW3J4gAAAEtIyzQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOq5a6AACwtTnzmNM3avvW2iKVBAAA2NpomQYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANCpWmtLXQaWD28mAAAAoJa6AItJyzQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6LRqqQvA8rH2pIcsdREAAAC2OTu96rylLgKwEbRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6CRMAwAAAIBOwjQAAAAA6LRqqQsAAAAAW6OdX33+evNrXnLwEpVkYapqvfnW2hKVBJYXLdMAAAAAoJMwDQAAAAA6CdMAAAAAoJMwDQAAAAA6CdMAAAAAoJMwDQAAAAA6CdMAAAAAoJMwDQAAAAA6CdMAAAAAoJMwDQAAAAA6CdMAAAAAoJMwDQAAAAA6rVrqAgAAAMC2YOdXn784B351Lc5xgUWhZRoAAAAAdBKmAQAAAEAnYRoAAAAAdNJnGgAAAHRY85KDF+W4O73qvEU5bpW+2GAxaJkGAAAAAJ2EaQAAAADQSZgGAAAAAJ2EaQAAAADQSZgGAAAAAJ2EaQAAAADQSZgGAAAAAJ2EaQAAAADQSZgGAAAAAJ2EaQAAAADQSZgGAAAAAJ2EaQAAAADQadVSFwAAAAC2RmtecvBSF2GTtNaWugiwLGmZBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0Klaa0tdBpaJV332Rm8mAAAANtlJh9xhqYvApqmlLsBi0jINAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACg06qlLgAAAACwcpy8evv15l95zg1d+1XVevOttc1WJtgYWqYBAAAAQCdhGgAAAAB0EqYBAAAAQCdhGgAAAAB0EqYBAAAAQCdh2mZSVW2cVi91WXpV1cVjmU9Y6rIAAAAAbAu6wrSqOmUiLJpzWuwCz1HG1WM5T1iqMgAAAACwvK1awD4/3Oyl2DxWJ3lZks8m+aslLQkAAAAAy9JGh2mttb0WoyAAAAAAsLXTZxoAAAAAdFqUMK2qbl9Vj6yqN1fVl6vqsqq6sap+VFWfqKqnVlXNc4zbVdXRVXVWVX2/qm6oqh9X1Veq6s+q6v7jdvuMfbW9bNz1kBn6cjthAdewd1W9tqouqKqrq+q6qrqwqj5aVcdV1Q5z7HvHqnpFVX1r3O8nVfWxqnpQx3lXV9X7q+qSqrp+PPeXqurFVbXzPPvuWVUvraovVtUV4/4Xj6/5iVW120a+BieNr98tVXXixuwLAAAAsBwtpM+0Hg9J8smJ+RvG6WeSHD5Ov1FVv9lau3X6zlV15yQfTvLwicVXJ9ktyQHjdN8kv57klgz9uO2SZOckNyW5Ytohr9uYwlfV05KclmQqMLtxPMa9xulxSf4lyQUz7H7XJP+c5N5Jrk9ya5I7JTkyyeFV9djW2idmOOeqJH+R5LcnFl87XtOvjtPTq+pRrbV/n2H/w5N8IMke46Kbx/3vOU6HJ/lBkrM6rv92Sd6c5NnjNRzTWvvIfPsBAAAALHeLdZvndUnelyFA2ivJjq21OybZM8lzk/w0yZOTPGf6jmOodFaGIO2GJH+Q5Gdba7sn2THJvkmeleSbSdJa+4+xH7dTx0Oc31rba9p0Zm/Bq+oxSU7PEKSdl+RhY/l3zxDmPTzJ2zMEbDP5n+O6R2QIwnZJ8mtJvp3k9kneNoZV052aIUj7YZLfS7Ln+JrtmOTQJF9N8otJ/mb6/lX1K0k+miFI+9ckj0myU2ttj6wL416f5JqO698+yZkZgrSrkjxKkAYAAMBiOXn19htMVbXBBFuLjW6ZVlU/mGP1Ya21f22tfTHJsdNXttauSPLmqro0yQeT/H6GFlCTjs/Qsq0leUJr7e8n9r8lycUZWo1tdmOQ99YkleTzGa7nttCstfbTJOeO02xuTnJoa+1HE8v+b1U9OUNrtnsmOShDUDd13vtneC3WJnlka+3rE+e8Kck5VXVIhgDxgAwt4yZbmL05Q/j33SQPaa1dPbH/2iRfHqf5rn+3DKHcIUm+n+TRrbVvzLcfAAAAwEqxkJZpd5ljun3nMT4+Pv58Vd112rqnj49/PxmkbSGHZmj5liTPnwzSNsJp04K0JMkYkF00zj5w2upnZAjwPj4ZpE3b/5qsC9AeNbW8qu6T5KHj7EmTQdrGqKq7ZQgJD0nyrSQHC9IAAAAA1rfRLdNaa11tK6vqjklOTHJUkvsl2T0zh213T3LZuM+qDLckJsnfbWzZNoODx8cftNbmbck1iy/Ose7SDGHdnaYtnwrDjpin5d8u4+M9J5ZNlfmWJGf3FnKa+yY5ZTzuF5IcNbYiBAAAAGDCogxAUFW/kOTTSe4xsXhthj64pgYcuMv4ODlC5Z5ZF7ht0Mn+FrDXZjj3XP2S3Tw+Tg8V7zY+7pJ1gdlcdpp4PlXmy1trazr2nckfjI8/THJ4a+3aBR4HAAAANsorz7lhg2UnHXKHDZbpN42txWINQPCuDEHaxRkGGtiztbZza+1nx8EC7j6x7WyfhrZIZeuxpc+93fj4h6216phWz3CMTSnzBzMMmnCXJH9RVdvNsz0AAADAirTZw7Sq2jvrbj18amvtQzPcMrhXZvaTJDeNz/fZ3GXrcNn4uO+cW21+U7d2PmAB+06V+Weqauc5t5zd3yf5jQyjp/5WkjMEagAAAAAbWoyWaXtPPP/qLNv815kWttZuTvKlcfaxG3neqdtHN6Xd5/nj412q6r9swnE21tTInkdWVc9tnpOmyrxdkiMWWoBxsIfHJ7k+yVOTvH/sww4AAACA0WKEaZOjSf7y9JXjwAR/NMf+7xgfH1NVj9mI8/50fNx9I/aZ7jNJvjc+f2NVbXiT9uJ4e4bbNHdP8rq5Nqyq208Gbq21f0vyuXH2VVW160IL0Vr7RIYQ87oMt+d+oKp6R2gFAAAAWPYWI0z7ZpJLxufvrKoDp1ZU1UFJzkmyxxz7n5Hk8xlamH24ql5UVXce99+uqvapqudX1Wum7feN8XG/qjo4C9BauyXJczIEWw9N8umqemhV3W48/65Vtbqq3lNVv7SQc8xy3guSvGmcPbGqPlhV+9fYu+J43b9cVX+c5MIk+087xHMztCi7T5LzqurRUyFYVe1UVQ+qqr+sqhlbBE4ry6eSHJlhwIgnJvnrLRgqAgAAAGzVNnuY1lprSZ6dYeTK/ZJ8uarWVNWaDLck3jfJU+bY/+YM/Xedm2SHJK9N8qOqujJDi6mLkrwhyS9O2/WcJN/OcLvjeVV1RVVdPE5P2ojyn53khAz9hz10LMfa8fxXZ2i9dmySzR0wvSjrArUnZbhFdm1VXZ4hKLsgyZ9kuI12vcEGxjDu8WP57p/k7CRrquqKJGuS/J8kz0rfSKFprX0mwy2j1yb59QyhpkANAAAAWPEWZTTP1trHkjw8yceTXJVkVZLLM4zyeUBr7dPz7H95ktUZOsM/O8mPk+yc5MokX0nyZ0lOmrbPzUkOS/K/M4wiunOSe47TRvVD1lp7d4bQ700ZWtrdnCE8uzDJWUmeluT/bcwxO855S2vt+UkOSHJahmDwliS7Zbju85KckmT/1tp5M+z/yQwt016ZIYi7LsmOGV6LT2QI0/5pI8rzuQyB2jVJjkpyVlVtv7CrAwAAAFgeamhIBpvuVZ+90ZsJAACAOZ28ev12Gq8854YNtjnpkA1vjhp7QrqNPGOrtimDQ271FqVlGgAAAAAsR8I0AAAAAOgkTAMAAACATsI0AAAAAOi0aqkLAAAAAKwcMw040MOAA2wttEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoVK21pS4Dy8RfH/tubyYAAACYwdHvPW6pi7Al1VIXYDFpmQYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBp1VIXAAAAAGBb9JT3Hb/e/JnHnL7Rx6iq9eZba5tUJhaflmkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdhGkAAAAA0EmYBgAAAACdVi11AQAAAACWg6e87/gFrWPbomUaAAAAAHQSpgEAAABAJ2EaAAAAAHTSZxoAAADAZnDmMafPuu7o9x434/KqWqzisEi0TAMAAACATsI0AAAAAOgkTAMAAACATsI0AAAAAOgkTAMAAACATsI0AAAAAOgkTAMAAACATsI0AAAAAOgkTAMAAACATsI0AAAAAOgkTAMAAACATsI0AAAAAOi0aqkLAAAAALAtOvOY0zf5GK21zVAStiQt0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADoJ0wAAAACgkzANAAAAADpVa22py8Dy4c0EAAAA1FIXYDFpmQYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnYRpAAAAANBJmAYAAAAAnVYtdQFYPqrqWa2105a6HMDSqapnqgdgZVMPAOoBYLnXA1qmsTk9c6kLACw59QCgHgDUA8CyrgeEaQAAAADQSZgGAAAAAJ2EaWxOy/Z+aKCbegBQDwDqAWBZ1wPVWlvqMgAAAADANkHLNAAAAADoJEwDAAAAgE7CNG5TVXesqlOq6utVdW1VXV1V/7eq/kdV3WGOfd5YVZdU1Y1V9e9VdWpV7TzHebavqm+P5/i5xbsiYFJV7VRVR1TVH1XV34yf1zZOp3Qe4y5V9frxM3xdVV1RVedW1W9XVc2x315V9Y6q+sFYV3xnLMeqOfa5c1VdXlXfr6pdF3DJwDRVtWdV/beqek9VfbOq1lTVDVX1n1V1VlX9Rscx1AOwDauqA6rqZVX1t1X1rar6SVXdND6eV1UnV9Wd5jmGegCWmar6w4nvBnP2B6YO0Gcao6q6Z5JzkuwzLlqbZLsk24/zX01yWGvtyol97pDk3CS/Ni5ak2QqRDs/yerW2k0znOvlSV6a5AWttTdu1gsBZlVVq5N8ZpbVL2+tnTLP/gcm+USSPcdF1ybZIcnUL79PJnlca+2GafvtkeTLSe41LpqsKz7UWnvyLOc7PclxSZ7QWvvIXGUD+lTVTVn3mU2S65PcknWfySQ5O8mTWmtrZ9hfPQDbuKp6a5JnTyy6PslNSe44sezyDJ/lL8ywv3oAlpmq+sUkF2T4LCdJWmszhmLqgIGWaaSqtkvydxmCtMuSPLK1tnOSnZL8ZpJrkvxKkvdO2/W3MgRplyR5QGttl3G7S5McnOTYGc513yR/mOSfk7x5ES4HmNuVST6d5HVJnprkBz07VdVuST6W4Zfmt5L8amvtjhl+AT4nwx/hhyeZKSB/foZfml9Lcs+xrnhEhl+8TxpDvunne0SGX5of3Zp+acIysCrJl5L8XpKfb63tOH4m903yjnGbI5K8bfqO6gFYNr6U5EVJDkqyx1gP7JohTDshyY+T3DnJWePn/jbqAVh+qup2Gf4G2CHJBgH6tG3VAVNaa6YVPiV5RpI2TgfNsP6pE+sPm1j+/nHZs6dt//vj8vdNW15JPpfk5iQHLvV1m0wrbUqy3QzLLh4/r6fMs++fjtutTbLvDOtfMq6/OckvTFv3hXHdkdOWv2Fc/qppy3dI8p0MQf49lvp1M5mW05Tk0HnW/+XE7/y9p61TD5hMK2DK8EV4qh44dto69YDJtMymJM8dP4PvSXLK1Od/lm3VAeOkZRpJcvz4+Jk2Q1PuJB9IctH4/LiJ5XceHy+ctv13x8efmbb8GUkeluTNrbWvLLCswAK11m7ZhN2nPvsfaK1dNMP6t2T4r9J22bBV6sbWFX+U5D5JTm6t/efCigvMpLU2263eU94x8fy/TFunHoCV4f9MPL/HtHXqAVhGqmrfJK9M8pMMLcfmow4YCdNWuKraKclDxtmzZ9qmDbHwP4yzh0+s+sn4+PPTdrn3+PjjifP8bJLXZrgl9KWbUGRgCxv7UJgaLGS2euLaDH0oJuvXE8nG1RW/lOTFGfpTeOsCiwws3PUTz7ebeqIegBXlYRPPb/vSqx6AZentGW7RfEFr7cdzbagOWJ8wjftl3fvgG3NsN7Vur4nRff5xfHxxVe2XJFX1gAxv+sn1SfKmJHtkuCX02k0uNbAl3X/ieU898UvTlk/VBa+oqr2TpKoenuR3JtePI/+clqFO+p3W2q2bUmhgQVZPPP/6xHP1ACxjVbV9Ve1TVc9Jcsa4+N8y9Ks8RT0Ay0hV/U6Sw5J8qrX27o5d1AETZh1+lBXjbhPPvz/HdpPr7pbkigz3VJ+Y4TaQb1TVtUl2Gbf5YsYBC6rqURn6XftQa+1jm6ncwJazsfXErlW1y0Rw/sYkT0uyf5JLqmpy5J6PTNx29swMLWVPba1dsHmKDvSqqt0z9HWSJOe21r49sVo9AMtQVV2fZPsZVp2X5Ji2/mh86gFYJqrq7hkGJLsuybM6d1MHTNAyjckhsNfOsd3kujsmyfjL9b9mGJXz+xk6CPzPDK3QHtlau7GqdkzyF0muzjAwQarqwKr6RFVdU1XXVtUnq2p6vyzA1mPB9USStNauyDDC7+lJfpTkDhluGzklyVOSpKr2SvJnGQZEeNm47JFV9fmqWltVV1XVh6vqPpt8NcAGxpG8zkhy1yQ3JPnv0zZRD8Dy9IMkP0yyZmLZZ5I8r7V2ybRt1QOwfLwtyW4ZBiH7Xuc+6oAJWqaxSVprV2cY/eO5s2xySpJ9k/xua+2yMTT7XIYPzt9mGLXj8Uk+V1UPb619efFLDWxprbVLk5wwxyZ/nmT3DP8FX1tVj0vyNxm+1H80w23iT0jy8Ko6cIY/8IFN8+dJjhqf/15r7Wub+wTqAdj6tNb2mXo+9nH8tCQnJ/lSVb2itbZZ+zpWD8DSq6rfSnJkkgsyjKS5xSynOkDLNK6ZeL7THNtNrrtm1q0mjP2nvSDDELhvGxf/eZIdkzyjtfaE1toTM9wquuO4Dtj6LFo9kSRVdUSSozOMCnR2VW2XYSSg7ZI8prX21NbaozOMNHTnJK/uLjkwr6o6Nclzxtnnt9beOcNm6gFY5lprP2qtvT7JozP8w/uPq+qoiU3UA7CNG0PzNyW5JUN/ZDdvxO7qgAnCNC6deH73ObabXHfprFuNxttFTsvwi/iZrbU2fnAPzjBKxxkTm78ryeVJDq6q6cPhAktvY+uJn/YONDKOKPy/klyV5Hnj4gMzjBT0ldbaZyc2PzVDnfLYsY4BNlFVvTbJ/xhnX9Rae9Msm6oHYIVorX0pyefH2WdOrFIPwLbvNUn2zPBd/VtVtcvklOEOsiTJxPKpZeqACSof/l+SqdEx7j/HdlPrfjDe6zyf303y4CSva61NjeZxr/HxoskROVprtyS5aNo2wNZjcrSennpu2gyqAAAcv0lEQVTimxtx7Jcn2SfJi1trPxyXTdUDF05u2Fq7KkPwfsckgnfYRFX1uiQvGmdf3Fo7dY7N1QOwskx1IH7viWXqAdj27Ts+/m6GVmPTp5dMbDu17LXjvDpggjBthWutrc0wWk8yNOnewDg07aPG2U/Od8yquluSV2V40//pDJvsOMeyNt/xgS1rHNFvqj+C2eqJnZM8bJydt54Y99k/w3+ePp/kf8+wiboCFsl4a+cLx9kXt9ZeN9f26gFYcaa+xN52i5Z6AFY2dcD6hGkkw2gaSXJoVT1ohvVPzrpfqO/uON5bkuya5MTW2vUTy6dan92nqvaYWlhVe2bdf70u7i00sEVNffZ/s6r2mWH9s5PskqH/hffOd7CJW8FvTfKs1trkL8KpuuKAqlo1sc9+4zmuyfDfKGABxiBt6tbOF84XpE1QD8A2rqq2G/9RPtc2hyX5tXH2nGmr1QOwDWutrW6t1WxThhZiU9tOLX/exCHUASNhGskQpn09SSX58PgLNFV1u6p6cpK3j9ud3Vr79FwHqqrHZhhd44zW2qcm143NNb+YZIckb6mqncZ7o98yLvtCa+1Hm/G6gGmqao+quvPUlHW/B3aaXD72mTDp1CQ/yNCh6Mer6sDxeHeoqt/Nulaop7XWvtNRlOck+dUkr2mtTW8C/pUMt5fcPckrxnPskaGuSJKPTd4qDvSrqtdkXZD2grGz8V7qAdj27Z3kq1X1rKq612SwVlV7V9UfZhgxr5JckeSN0/ZXD8DKpg4Y1frBHyvVmCp/JsN9ykmyNsOX7B3G+a8mOay1duUcx9glw33ROyW5b2ttg5S4qg4az7N9kpszNMu8fZLrkxwydngKLJKqujjJPTs2Pb21dsK0fQ9M8okMnZYmw3+DdsjwGU6GptyPa63dME8Z7pGhrrgsyQNn2r6qnpjkgxn+mL9hPMftMvxhf2Br7eKOawAmVNXPJfn3cfbWDAMCzeXU6f2oqQdg2zb+zX/RxKIbk/w0wy1TO08svyjJE1trX53hGOoBWKaq6pQkL0uGlmmzbKMOiJZpjMY34QOT/EmGjgVbkpsypMEvTPLguYK00Ssy/LfrhTMFaeN5vpDkkCSfyvBhuDHJpyNIg61ea+0rSfbL8F/q72b4ZbYmQ/8Gv5PkiPl+aY7emqHD0BNn27619uEkRyb5QoYv/dcmOSvJwf5whgW73bTnd5lnmt5CVT0A275LkxydYdS8r2S4RWrXDHXCJUn+LslvJ9lvpiAtUQ/ASqcOGGiZBgAAAACdtEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDAAAAgE7CNAAAAADoJEwDgAWoqlOqqlXVOUtdFhamqn6uqt5VVZdU1Y3jz/OqpS4X276qOmF8P108w7pZ646q+qtx3V8t8Lyz7r/Qdcysqi4eX7MTNtPx9hmP16pqn81xTAAWjzANgG1CVe1RVddPfNm4zyKdZ//xy+7zFuP4S62qVk+8hpPTzVX1k6o6v6peWlV3XqTzbxWvb1XtluS8JCck2TvJ2iQ/HKetxkQos6K+YFfVvlX18qo6t6ouraobquqaqvpuVZ1ZVcdW1U5LXc6VYHwPnlJVq5e6LFOq6rUTn4v3bOZjb3XXC8DWR5gGwLbi2CTbT8w/fZHOs3+SlyWZL+y5PMm3k1yySOXYEq7MugDpmiR3SnJQkpcn+WZVHbAI5+x9fRfbU5PcI8NrcL/W2u6ttb1aa7+4xOVa0arq9lX1piTfSfLSJA9Nctck12X4u/XeSY5O8p4kF1bVkUtV1k2wmHXHZeOxL9uM+52Q4TO7elMKtrlU1aokT5tY9MSq2n0znuKE9F3vhRles6s347kB2EYI0wDYVjxjfHzL+Hh8VW23VIVprb21tXbf1tpxS1WGzeAJY4C0V2ttjyS7J3lBkhuT/EySD1bV7Ze0hIvnAePjP7XWvrWkJSFJUlV3SPKJJM9NsirJPyQ5IsnOY9i5c4b35TFJzk2yV5JHLlFxF2wx647W2kvGY79kS+y3RI7M8LP/ZpJ/SrJDhvfEFtVaO2x8zT6ypc8NwNITpgGw1RtbSO2f5KokL07yvQytVY5YynItN621q1trb0zyinHRvZIcuoRFWkxTtwheu6SlYNKfZ9377QWttSNaa//QWls7tUFr7fLW2vtbaw9P8qQMLQtZWab+sfLucUoWr6UyAMxImAbAtmDqy9OZrbXrk5wxbfmcqurwqvpAVf17VV1XVVdU1b9U1Vuq6qCJ7VqSd42z95yhX7FTJraddwCCqvqVqnr3eN7rq+rKsU+y51XV9rPss17H5VV1YFX9dVVdNvYb9b2qekNV7dFz7Qv0DxPP95uhjDtW1eOq6u1VdUFV/Xgs26VVdVZVzRhybszrO7HPblV1clV9cXz9bqiq/6iq91fVgzf2wqrqnLEcJ4yLjp9WhhOmbb/b2IfcP1fVT8f3z3er6i+q6l5znGfqeKur6mfHn9l3qmrteP5FV1U7jO+188fX7vrxvfjuqtp/hu23q6qrxnIfNcP6p05c16kzrL/rxPpZX5tZyvpLSZ41zr5zDHXn1Fr7cJI/nXac2zqFr6pdqupPqurrNfS3tkG/c+Nn9J1VdeH4s7m2qr5WVa+oefoNrKoHj+/3y8f3xber6pVVtcs8+3UNXlKDE6vqS1V19fj++3xVHTvHPgsaSGCm/abqoiSHjIteNsNndp+qevT4/Kaquts85zl3IeWb2H/qnyi3ZrjV98NJ1iQ5sKp+eY799plW5p+vqtOq6qKxTrm493onjjnvAARV9aAaBjn5t6paM/4Mvzm+5w5f4Gvw6+P77tIaBk65sqo+N75XZm1JXFVHV9XZVfXD8Wd1VQ112d9W1bOraoeFlAdgpVq11AUAgLmMf+BP3cLz7onHlyY5qqru0lqbsdP4Gjoo/6skT55YfE2GVkkPGKeHZWj1lgx9h+2YZNcMX9Z+PO2Q3a2Yauhg/w1Jalx0dZKdM/RJdlCS/1ZVj26tzdq3UVUdM5b/9uP+q5Lsm+T5SQ6vqge31hajZVVNPJ/pVtqnZF0olgz9Wd2cobXg45M8vqpe31p74bT9Nur1raoHJflokruMi27JMFDAPZL8ZpKnVNXJrbVXd15XklwxlmO3DLeHXZ/1+zy6buL8+2UIFu8xLro+yU0Z+u26d4af4bFjqDObeyf5wHgNU/svuqq6e4ay339cdFOG1+7nMvQ3dWxVPa+1NnXbdFprt1TV55I8Nskjknxs2mEfMcvz6csuaa19byOL/OwM77tbk/xJ706ttVtnWbVnkq8k+YUMty2vnb5BVb08yR9n3ft9bYbP2gPH6elVdWRr7asz7Pv0JG/Pun9MX51knyQnJXlCktN6r2EO78/wWbt1PP7uSR6S5CFVdViSZ7TWFjOYvS7DZ+VOGV6XNdmwDrwlw625F2Wom56edS1b11NV983QB16y8Nfn+Az14D+21r4/HvfDSY7L8M+V3+84xsFJ3pZklww/86nPZO/1zquGLgjeMK08azLUp/cbpydk+Jl2GUPa9yeZDLp/mqEue9g4HTe+Z6+ctu87sn7rvWszXONUXfbYJB9PcnFveQBWOi3TANjaPTHDF45/a62dnyTjF/XPZ/hS9bQ59n1XhiDt1iSvSbJ3a23XDIHOPTIMavCFqY1ba3tl6K8pSf5joj+xqWmD1jgzqaFVzxszfEn/aJJ7tdZ2z/Dl7bgMgd4Dk3yoZu/37f+3d/7BdlXVHf+sEAKEhEAgRPmZjvyqQPkhFVK0BrCmIr8a0EBjIQIyMAMMioDMGAdLBwXaMqWp/Cg6gRRoQpBqCkKhIRYLtEZggGgVpBFa5WdICBDAJKt/rL1zzzs599xz732PPMv3M7Pn3HP23mevs+86576z3tprTQC+DdwI7JL6jwXOJl7+9iaWvA4Ff1z4XGUUWUG8DB8GbOfuo1M8qx2IwN2/Ac43s2OKnbqZ3+QBcjdhhFoAfAjYPH1/EwmPpLXAZWZ2XNMLc/dpSY556dC8kgzz0vhjgYWEnvwvEadpyzT+/sDDREKMm+s8Ygg9WAEcUeg/pEkOkk7dThjSVgKfBcYkHfoAYSQbAVxtG3oR3p+2VcayvATzNWA/Mxvfpv5+uueItH3E3X/ZQ/8ylxBG22nEtW9DZG19EdYbu79KGBUuBt6fdHg0cBARi+v9wPfKnmYWy86vI+ZwMSmBBXF/n0TE8/pqn/IfRyRamAVs4+7jCb2fneo/B5zT5xi1uPu8dK88mA79ZcU9+1wy6F2X2pxmZu3eLz6ftk/mZ3kPZIPQTYVjN6btDGvj8VviOmAp8PvuvqW7jwE+0fR6G8p5GS1D2reBPd19TNKxicT3e3e7zm2YSxjSnib+wbSVu48jdPZY4lk9OY23HjP7CDFv64CLgG3dfWySZTtgKjGH73QpjxBCvLdxdxUVFRUVlWFbiJdaB2aVjp+ejv+0Tb8jUr0DZ3Ux3szUZ1mHdpekdosr6pamugeATSrqjy7IdkKb8R2Y02bsv0r1T/Uwn1MK559SqhtHZNl8O9W/QBiwuh3jS6n/fX3M722p3U01bb6Q2jzWg4xzOszxRan+HWCfivqxhDeOA/9cUZ/neCWwUx/6X9SHSQ37TC/0mVpRP5IwBjrwRKluv3R8HfHSnY/vnI4/DdycPk8r9X0mHT+ly2scmcZz4Ppe5yqda1k6zxrggDZttiO8hNYBR9TItCSd67xS3V3p+M+ALSr6Ti3M/wZ6Tv2zY06h75+3kW1uqn+lfH/W6XUfdYtT3SU18z6B1nOjSudGEZ6oDpzT43f7h6n/KmB04bgRmVEdmN6m76Tid0IYWNuN0/F6S7o2s3R8D8LQ78DlXVxfUcZJpbpPpeO/BnZs038nwjjswP6F4xemY/f0c2+pqKioqAws8kwTQggxbLGIuzSFeBGYW6qeTyzL2cvM/qCie/ZgWOru1wyZkCXM7PeAD6bdS919g2VB7r4Q+M+0e1LN6SqXSxHebgC7paWsvfIdM3s+lVcJD6qriBffVcBnPGLUdcudaTu5xvOuLcnjaVra/UZN0+ydsp+ZTaxp1wvT03aBuz9ZrnT3VcAVafeTZjauzXnmuvv/DLJsnciyP+Tu95Qr3X0N8LW0u4+Z7Vuofpww0hgDk09kT7VFqRSPYWa7Esv8oHvPtPG0llou77JvO+72iuWZiRmEN88Sd//XqgZpjm5Nu1PzcTPburB/pbuvruh7DwWP1x5ZDbTzhM3LYMczTLKZuvtLhDckwBkVTaYRRszVbPgsb0qOkbnAByalKP4+NImjOduHZnl85hTCa/EVwlN3MDg9bed6Wt5aJj1n8r03tVC1Im0n9PI8FkIIUY2MaUIIIYYzpxIv2Q+4+7Jihbu/BvxToV2ZbGBbOGTSVXNQ2q4BflDT7t5S+zLL3f3pNnW/KnzuJxHBNsSSo4kMjN3zGLEsqa38ZjbRzL5mZg+Z2StmtiYH6QZ+kpqN7lG+ybT+RllUMPgNKIQHYGbXHsapxMxGEctwAe6raZq/wxHAgW3a/PtgydUFWafqZL+fVvyn9TqYDBOL025VjLRFVC8FzZ+fcfdnu5S3GKPPu+zbjrp5z3G79mmnW0m/8lLNom4dSEE3a8aoq2vCkvSM2wB3fwrIBtp2z4+NwbVpe0yFcTsv8Zzv7ivoEjPbisjeCgOXeGbyUs8jkmG3jqG+J/Nvz709/jOiiqyzZ3TQ2Y+ndsU5uI+I13gA8ICZnWZmv4MQQoi+kDFNCCHEsCTF3Tkl7Va9PEHrBWp6Oa4REbcIYDDiL3XD9mn7sru/XdMuvwxv36Z+VU3fNYXPbbO3NeAwdzd3NyJg+1GEIWx/4Jp2XgwWGVD/izA2HEJ4yKwm4lG9ALxcaL5lD3IVMwJO7FAy/XjolRlPK/FCpRdIouhx1u57fHFQJOqOLEtb2dNLfv6eyrJXGcvWx0PziFm4DPhdM3tfub54IjObXvPyn40Or9Ayom3b4dqaUjfvWb+2oF63tkrtirpVnKumutELdecu1rfTu3cdd/834vkxkojpBoCZfYCWflxX0bUJJxLfw7O0jL3FsX9OLF0eQStTbzuG+p4c1N+elKEzZ5YdR73O5oyc63U23a+nE0tAJwM3AM+Y2YtmNs/MjjWzokFbCCFEA2RME0IIMVyZSiuL4g3Z66lYaAVwHkME6y7ipe27TdNxN5Z8A3D35e5+J/HS+wIR0HpWuZ2ZjSSWv21NeLAdSQTCHuvuEz0CeB9S7NKDONmQtTob+xqUxT2M04S678fbfC7SKPvfENGrDmaD2J5mtoOZ7UbETFvqrcy5ZYNbNpaUPbLqDFajYP2Syp+n9gc0lLkTdfOe9evahro1aZBk6oZh8VzogeyddnrBQPN54jnwpLv3uvw1L9/cBVjX5vcgP3c+18E49G7dk4P1HRb/qXFiQ52dOUAQ95sJb7UzieQrzxFx7j5DeHj/IHn/CSGEaIiMaUIIIYYrTWLfFCkv9Xw+bSf1L0pXZK+HCR0yy2VD4UtDLE9XuPuLRHZDgC+nrJpFJhMvZWuBo9z9+yl+WJH30R/5u9siGXLebZbTeuHeuaZdsW44fY9ZB9vKbmab0/ICGyC7u/+E1ndwOAOXeGbWG9PMbA9a+ry4dK45DQ2gOXbZAQ2W6fVLvrZ9a1tVU/Rq2rGmXV1dE3bqUJ/PvzE8H+u4CXiTyBp7eDK+z0x1PXmlmdk+wIe76LIrreywG4Nfp+2kwThZ8iJdmXZ70dl8nuXufp27n+juuwC7ETEpHfgokRhDCCFEQ2RME0IIMewwswnAMWn3BCJzYruSX7IONbO9Cqd5MG2P7nL4dVmMLvtllqTtSOBjNe1ybJsf9TjOUHIT8AtgM1rBzjPZQPNSu0DYtK6tiibz+yAtr44Ta9oNCe7+DhGIH+pfyvN1rgMeGVKhuiPrYJ3sUwgdhWodXJy2h1Ptdbaoov5n7l6M59cN3yS+801oxSrrSFoO3i05ZtYhPRjuHqGlw4fVtDu8pq4JB5nZ2KqKZGDOxrYlVW0GmcbPRHdfSStxwxnEc3wisQz8H3ocP/9j5RHqfwvG0oqj2e0/Y4r0+xuQf3v+KBmtB4Oss5/uUec3wN1/4e4XA7ekQ8MimYUQQvy2IGOaEEKI4cifEbHAVgIL3f31mvIjIn4XDPRO+1ba7m1mZ3Uxdg76vXVtqza4++O0AvB/pSrumJkdCRycdm8t129sUgbSy9PujJKRMntITKzKoGlmOwHn1py+4/wm77icsfSC5PnUlpT9c7D5x7Q9IXnGlMccA1yYdu9KRoThQpZ9spl9olyZvIWywerJqmylDDSWTSEMDOsTUiRD6lNEBs8cH6vbLJ7rcfelwN+n3VPN7LxOfczsOOArPQw3lzDubAL8XV2GQzMbkTJ4ZjlXAP+Sdr9UZSwxs4/TCkLfK1sA57epy9e8nFYSjKGk22dizp58HK17ZF6PiQdGAZ9Nu/M7/Ba8TixhBPgTM+s1OUtfvwHAHMKzdVtaWXP75fq03QO4oK6hmW2Z5i3v13lIQ9wLsHGXpAshxG8dMqYJIYQYjmSj2HeTl1Anbkvbk5OhAHe/n5ZRYbaZfT0ZerBgBzM73cy+VTpXNixsZWblOGxNuShtPwosyJnTzGxTM5tBy4D2IC1PiuHGjUSQ8xEMXP7zQ+ANwmtjfjZ0mdkmZjaV8GiqixXUdH7PJwLTbwX80MxONbNxudLMtjOzaWb2HYbGIHkN8N+EUff7ZvbJ7BFiZvsC9xCGpHfozaDTC9uk625XslHxduA/0uf5ZvanKYg5SRdvJ5brQsvYUSYbxnYllu0+6u6vltpkg9vBpT69ci7wQPp8lZndZWZTzWyL3MDMxpvZp81sEXAHkSyiK9z9eeDLafdTwL1mdmg2qqXnw15m9kVCX48qnWIWYXjYC7jTzPZM/UYmnZ4PdG04KrESmGVmF2cPtfQd/w2txCyXDmK2yDryPXukmXVcvuruPwZ+TMTEy7pxffsetRxLK/j+bXUNEwsJ49BmwIwex+zqesukLMxXpt0LzewGM9s915vZBIvEHHd0cc7vEvoO8A0zu6b4TwYzG2VmB5vZ5UTig2JiitlmNt/Mjjez7Qt9xpjZmcDJ6dBdXV2oEEK813F3FRUVFRWVYVOIINKeylEN++xb6HNs4fhownDghbISeKuw/1jF+e4r1L9GZC5cBpxXaHNJql/cRqYvEN48+TyvAm8X9h8HdqjoNzPVL6u53kmF80zqcn6nFPpO6dD2vNRuHbBv4fiZpTldRbzAOhF/6+g6+ZrMb2p3AGHQ8oIcy9N4xfHv7UHP5qS+c2ra7ENkZczjrE76k/ffAk5o07fRHDeQc2bpWuvKikK/HQmjQK57O+lg3l8LnNth7GcL7a+oqJ9eGn/7Qbj/RwGzgd+Ur43IRlg89hwwtdR/Waqb2WCsC4jMuMU5epkwkBbHmVHR9wwG3t8raD1Xfkrc/5X3MTXPjqJeEv8M8CTj8tJ4NwIjutHrPup2p3V/ryVizi1LZac2c3taQdYn+tCHu9M5lnTRJz/zHy0cm1SQZ1KH/o2ut07XCK/H2SU9WkX8I2KD+7WJjMTv2a2lc75OK8Zj8fiOFd9tUY5XS8ceALbs9/5VUVFReS8VeaYJIYQYbuRYNytpLaeqxd2fIF5gi/1x9zfd/XjCs+QO4FfA5sQLyOPA1cRLcZkTgKuIDIObEt45u9LFsh93vwo4iIgT9BzxIrQaeBj4IvBh7z2+1LvF9YRxzCgsV3L3awmPnsXEXI4kvNj+FtgPeKLDeRvNr7s/CnwQOJswwL1MxEUaQSwxvIWIqTat5yuswWP5496E8eMxwqixGRFP7lpgb3dfMBRj94vHMsyDCF17mNC90YQuzgU+5O5XdzjN/YXP5Sydud7T56Uey3P7wt3fcfezgT2BvyC8N18gZAd4mjAynQjs5u739DHWlYR32VXE8+AtQgdfJ+LIXUEs17ylou/1wKGEJ9RyQi9+CXydiONY9uLrhZOAs4BHiXvsDeAh4GR3P8Xd19V1Hizc/SkiPtz3iOfBtrTu2ZFtui2gpRu9Jh7YmVYcr/lddM1t9zezA7sdt8frLZ9jbdLjjwA3E4bpTQlD7VIiDMHxXcr1pruflGSbCzxDPAvHEIkoFhGeprv7wHiWlxJen3cQIRHWFPrcS3iCT3H3N7qRRwgh3uuYu3duJYQQQgghhBANMLPjCYPaasIDt99lr0IIIcSwQp5pQgghhBBCiMHknLS9VYY0IYQQ/x+RMU0IIYQQQggxKJjZGcDHiBhvf72RxRFCCCGGhEbr/oUQQgghhBCiCjM7hIhlN45W7MNvuvvSjSeVEEIIMXTImCaEEEIIIYToh82JAP1riQy8c4DLNqZAQgghxFCiBARCCCGEEEIIIYQQQjREMdOEEEIIIYQQQgghhGiIjGlCCCGEEEIIIYQQQjRExjQhhBBCCCGEEEIIIRoiY5oQQgghhBBCCCGEEA2RMU0IIYQQQgghhBBCiIbImCaEEEIIIYQQQgghREP+DzV9Gi+MkcWuAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1332x756 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "low_means, low_sterr = (bin_rates['low']['true-neg-rates']['mean'], bin_rates['low']['false-neg-rates']['mean']), (bin_rates['low']['true-neg-rates']['stderr'], bin_rates['low']['false-neg-rates']['stderr'])\n",
    "medium_means, medium_sterr = (bin_rates['medium']['true-neg-rates']['mean'], bin_rates['medium']['false-neg-rates']['mean']), (bin_rates['medium']['true-neg-rates']['stderr'], bin_rates['medium']['false-neg-rates']['stderr'])\n",
    "high_means, high_sterr = (bin_rates['high']['true-neg-rates']['mean'], bin_rates['high']['false-neg-rates']['mean']), (bin_rates['high']['true-neg-rates']['stderr'], bin_rates['high']['false-neg-rates']['stderr'])\n",
    "\n",
    "barHeight = 0.26  # the width of the bars\n",
    "\n",
    "r1 = np.arange(len(low_means))\n",
    "r2 = [x + barHeight for x in r1]\n",
    "r3 = [x + barHeight for x in r2]\n",
    "\n",
    "plt.rcParams.update({'font.size': 25})\n",
    "\n",
    "plt.rcParams['axes.spines.left'] = False\n",
    "plt.rcParams['axes.spines.right'] = False\n",
    "plt.rcParams['axes.spines.top'] = False\n",
    "plt.rcParams['axes.spines.bottom'] = False\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "rects1 = ax.barh(r3, high_means, height=barHeight, xerr=high_sterr,\n",
    "                label='High Engagement', color=('#F5793A'), ecolor='black', error_kw=dict(lw=4, capsize=15, capthick=4))\n",
    "rects2 = ax.barh(r2, medium_means, height=barHeight, xerr=medium_sterr,\n",
    "                label='Medium Engagement', color=('#85C0F9'), ecolor='black', error_kw=dict(lw=4, capsize=15, capthick=4))\n",
    "rects3 = ax.barh(r1, low_means, height=barHeight, xerr=low_sterr,\n",
    "                label='Low Engagement', color=('#A95AA1'), ecolor='black', error_kw=dict(lw=4, capsize=15, capthick=4))\n",
    "\n",
    "ax.set_xlabel('Action Rate for Low-Credibility Articles', labelpad=30)\n",
    "ax.set_yticks([0+0.26, 1+0.26])\n",
    "ax.set(xlim=(0, 0.4))\n",
    "loc = plticker.MultipleLocator(base=0.1)\n",
    "ax.xaxis.set_major_locator(loc)\n",
    "ax.set_xticks([0,0.1,0.2,0.3,0.4])\n",
    "ax.set_xticklabels(('0%','10%', '20%','30%','40%'))\n",
    "ax.set_yticklabels(('Fact check','Like/Share'))\n",
    "ax.yaxis.set_ticks_position('none') \n",
    "ax.legend(frameon=False, bbox_to_anchor=(1.06,1.0), loc=\"upper right\")\n",
    "\n",
    "fig.set_size_inches(18.5, 10.5)\n",
    "fig.savefig('figure2b.eps', dpi=300)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
